package sql

import (
	"game/game-db/orm/meta"
)

type SplitSql struct {
	tableName string
	insertSql string
	updateSql string
	deleteSql string

	insertHeadSql string
	insertBodySql string
}

func NewSplitSql(entityMeta *meta.SplitEntityMeta, tableName string) SplitSql {
	var sql SplitSql
	sql.tableName = tableName

	sql.insertHeadSql = buildInsertHeadSql(entityMeta, sql.tableName)
	sql.insertBodySql = buildInsertBodySql(entityMeta)
	sql.insertSql = sql.insertHeadSql + sql.insertBodySql

	sql.updateSql = buildUpdateSql(entityMeta, sql.tableName)
	sql.deleteSql = buildDeleteSql(entityMeta, sql.tableName)
	return sql
}

func (t *SplitSql) InsertHeadSql() string {
	return t.insertHeadSql
}

func (t *SplitSql) InsertBodySql() string {
	return t.insertBodySql
}

func (t *SplitSql) InsertSql() string {
	return t.insertSql
}

func (t *SplitSql) UpdateSql() string {
	return t.updateSql
}

func (t *SplitSql) DeleteSql() string {
	return t.deleteSql
}

func (t *SplitSql) TableName() string {
	return t.tableName
}
